package com.atguigu.classroom.vod.service;

import com.atguigu.classroom.model.vod.Course;
import com.atguigu.classroom.vo.vod.CourseFormVo;
import com.atguigu.classroom.vo.vod.CoursePublishVo;
import com.atguigu.classroom.vo.vod.CourseQueryVo;
import com.atguigu.classroom.vo.vod.CourseVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 课程 服务类
 * </p>
 *
 * @author atguigu
 * @since 2022-07-10
 */
public interface CourseService extends IService<Course> {

    Page<Course> getCoursePage(int page, int limit, CourseQueryVo courseQueryVo);

    Long saveCourseInfo(CourseFormVo courseFormVo);

    CourseFormVo getCourseInfoById(Long id);

    Long updateCourseFormVo(CourseFormVo courseFormVo);

    CoursePublishVo getCoursePublishVo(Long id);

    void publishCourse(long id);

    void removeCourse(Long id);

    List<Course> getCourseListByKeyword(String keyword);

    Page findPageCourseWithSPIdAPI(Long subjectParentId, int page, int limit);

    Map<String, Object> getCourseInfoAPI(Long courseId);

    List<Course> findlist();
}
